别再造假数据了,来试试Faker这个库吧!
以下文章来源于进击的Coder ,作者崔庆才
test01
test02
测试1
测试2
测试数据1
这是一段测试文本
这是一段很长很长很长的测试文本...
faker = Faker()
print('name:', faker.name())
print('address:', faker.address())
print('text:', faker.text())
address: 70561 Simmons Road Apt. 893
Lake Raymondville, HI 35240
text: Both begin bring federal space.
Official start idea specific. Able under young fire.
Who show line traditional easy people. Until economic lead event case. Technology college his director style.
简体中文:zh_CN
繁体中文:zh_TW
美国英文:en_US
英国英文:en_GB
德文:de_DE
日文:ja_JP
韩文:ko_KR
法文:fr_FR
faker = Faker('zh_CN')
print('name:', faker.name())
print('address:', faker.address())
print('text:', faker.text())
address: 宁夏回族自治区六盘水县南溪北镇街f座 912311
text: 经营软件积分开始次数专业.美国留言一种管理人民解决两个.支持只有地方一切.
文化目前东西的是不过所以.系统觉得这种为什一下他们.时候以及这样继续是一状态威望.
网站密码情况.问题一点那个还是.其实过程详细.
中国历史环境电话规定.经验上海控制不要生活.朋友运行项目我们.
以后今天那些使用免费国家加入但是.内容简介空间次数最大一个.日期通过得到日本北京.
接下来让我们详细看下 faker 可以都生成什么类型的数据,具体的可用 API 可以看 https://faker.readthedocs.io/en/master/locales/zh_CN.html,这里面列出来了可用的所有方法。
但打开之后可以发现,这里面多了一个 Provider 对象,那么这个 Provider 是怎么一回事呢?
实际上这个 faker 库在设计上,为了解耦,将 Provider 对象做成了 Faker 对象的”插件“。Faker 可以添加一个个 Provider 对象,Provider 对象为 Faker 对象提供了生成某项数据的核心实现。就相当于 Faker 对象是一个生成器,它的生成功能依赖于什么呢?依赖于 Provider,是 Provider 提供给了 Faker 对象生成某项数据的能力。
正是因为 Faker 对象内置了一些 Provider 对象,Faker 对象才可以生成刚才所要求的姓名、地址和文本。
那么这时候我们肯定就很好奇了,既然 Faker 对象有生成数据的能力,那么它一定内置了一些默认的 Provider 对象,下面我们来打印看一下:
faker = Faker('zh_CN')
print(faker.providers)
faker = Faker('zh_CN')
print('name:', faker.name)
print('address:', faker.address)
print('text:', faker.text)
address: <bound method Provider.address of <faker.providers.address.zh_CN.Provider object at 0x10e9e6cf8>>
text: <bound method Provider.text of <faker.providers.lorem.zh_CN.Provider object at 0x10f6dfda0>>
'新疆维吾尔自治区杰县南湖武汉街D座 253105'
faker.building_number()
'B座'
faker.city()
'璐县'
faker.city_name()
'贵阳'
faker.city_suffix()
'县'
faker.country()
'阿拉斯加'
faker.country_code(representation="alpha-2")
'CR'
faker.district()
'西峰'
faker.postcode()
'726749'
faker.province()
'福建省'
faker.street_address()
'余路N座'
faker.street_name()
'李路'
faker.street_suffix()
'路'
'DarkKhaki'
faker.hex_color()
'#97d14e'
faker.rgb_color()
'107,179,51'
faker.rgb_css_color()
'rgb(20,46,70)'
faker.safe_color_name()
'navy'
faker.safe_hex_color()
'#dd2200'
'grow rich initiatives'
faker.catch_phrase()
'Self-enabling encompassing function'
faker.company()
'恒聪百汇网络有限公司'
faker.company_prefix()
'晖来计算机'
faker.company_suffix()
'信息有限公司'
# '08/20'
faker.credit_card_full(card_type=None)
# 'Mastercard\n玉兰 范\n5183689713096897 01/25\nCVV: 012\n'
faker.credit_card_number(card_type=None)
# '4009911097184929918'
faker.credit_card_provider(card_type=None)
# 'JCB 15 digit'
faker.credit_card_security_code(card_type=None)
# '259'
# 'AM'
faker.century()
# 'X'
faker.date(pattern="%Y-%m-%d", end_datetime=None)
# '1997-06-16'
faker.date_between(start_date="-30y", end_date="today")
# datetime.date(2000, 8, 30)
faker.date_between_dates(date_start=None, date_end=None)
# datetime.date(2019, 7, 30)
faker.date_object(end_datetime=None)
# datetime.date(1978, 3, 12)
faker.date_of_birth(tzinfo=None, minimum_age=0, maximum_age=115)
# datetime.date(2012, 6, 3)
faker.date_this_century(before_today=True, after_today=False)
# datetime.date(2011, 6, 12)
faker.date_this_decade(before_today=True, after_today=False)
# datetime.date(2011, 8, 22)
faker.date_this_month(before_today=True, after_today=False)
# datetime.date(2019, 7, 25)
faker.date_this_year(before_today=True, after_today=False)
# datetime.date(2019, 7, 22)
faker.date_time(tzinfo=None, end_datetime=None)
# datetime.datetime(2018, 8, 11, 22, 3, 34)
faker.date_time_ad(tzinfo=None, end_datetime=None, start_datetime=None)
# datetime.datetime(1566, 8, 26, 16, 25, 30)
faker.date_time_between(start_date="-30y", end_date="now", tzinfo=None)
# datetime.datetime(2015, 1, 31, 4, 14, 10)
faker.date_time_between_dates(datetime_start=None, datetime_end=None, tzinfo=None)
# datetime.datetime(2019, 7, 30, 17, 51, 44)
faker.date_time_this_century(before_now=True, after_now=False, tzinfo=None)
# datetime.datetime(2002, 9, 25, 23, 59, 49)
faker.date_time_this_decade(before_now=True, after_now=False, tzinfo=None)
# datetime.datetime(2010, 5, 25, 20, 20, 52)
faker.date_time_this_month(before_now=True, after_now=False, tzinfo=None)
# datetime.datetime(2019, 7, 19, 18, 4, 6)
faker.date_time_this_year(before_now=True, after_now=False, tzinfo=None)
# datetime.datetime(2019, 3, 15, 11, 4, 18)
faker.day_of_month()
# '04'
faker.day_of_week()
# 'Monday'
faker.future_date(end_date="+30d", tzinfo=None)
# datetime.date(2019, 8, 12)
faker.future_datetime(end_date="+30d", tzinfo=None)
# datetime.datetime(2019, 8, 24, 2, 59, 4)
faker.iso8601(tzinfo=None, end_datetime=None)
# '1987-07-01T18:33:56'
faker.month()
# '11'
faker.month_name()
# 'August'
faker.past_date(start_date="-30d", tzinfo=None)
# datetime.date(2019, 7, 25)
faker.past_datetime(start_date="-30d", tzinfo=None)
# datetime.datetime(2019, 7, 18, 22, 46, 51)
faker.time(pattern="%H:%M:%S", end_datetime=None)
# '16:22:30'
faker.time_delta(end_datetime=None)
# datetime.timedelta(0)
faker.time_object(end_datetime=None)
# datetime.time(22, 12, 15)
faker.time_series(start_date="-30d", end_date="now", precision=None, distrib=None, tzinfo=None)
# <generator object Provider.time_series at 0x7fcbce0604f8>
faker.timezone()
# 'Indian/Comoro'
faker.unix_time(end_datetime=None, start_datetime=None)
# 1182857626
faker.year()
# '1970'
# 'flac'
faker.file_name(category=None, extension=None)
# '然后.numbers'
faker.file_path(depth=1, category=None, extension=None)
# '/关系/科技.mov'
faker.mime_type(category=None)
# 'video/ogg'
faker.unix_device(prefix=None)
# '/dev/sdd'
faker.unix_partition(prefix=None)
# '/dev/xvds3'
Decimal('-114.420686')
faker.latitude()
Decimal('-9.772541')
faker.latlng()
(Decimal('-27.0730915'), Decimal('-5.919460'))
faker.local_latlng(country_code="US", coords_only=False)
('41.47892', '-87.45476', 'Schererville', 'US', 'America/Chicago')
faker.location_on_land(coords_only=False)
('12.74482', '4.52514', 'Argungu', 'NG', 'Africa/Lagos')
faker.longitude()
Decimal('40.885895')
'xuna@xiaqian.cn'
faker.ascii_email(*args, **kwargs)
'min59@60.cn'
faker.ascii_free_email(*args, **kwargs)
'min75@gmail.com'
faker.ascii_safe_email(*args, **kwargs)
'cliu@example.com'
faker.company_email(*args, **kwargs)
'ilong@99.cn'
faker.domain_name(levels=1)
'xiulan.cn'
faker.domain_word(*args, **kwargs)
'luo'
faker.email(*args, **kwargs)
'maoxiulan@hotmail.com'
faker.free_email(*args, **kwargs)
'yanshen@gmail.com'
faker.free_email_domain(*args, **kwargs)
'yahoo.com'
faker.hostname(*args, **kwargs)
'lt-18.pan.cn'
faker.image_url(width=None, height=None)
'https://placekitten.com/51/201'
faker.ipv4(network=False, address_class=None, private=None)
'192.233.68.5'
faker.ipv4_network_class()
'a'
faker.ipv4_private(network=False, address_class=None)
'10.9.97.93'
faker.ipv4_public(network=False, address_class=None)
'192.51.22.7'
faker.ipv6(network=False)
'de57:9c6f:a38c:9864:10ec:6442:775d:5f02'
faker.mac_address()
'99:80:5c:ab:8c:a9'
faker.safe_email(*args, **kwargs)
'tangjuan@example.net'
faker.slug(*args, **kwargs)
''
faker.tld()
'cn'
faker.uri()
'http://fangfan.org/app/tag/post/'
faker.uri_extension()
'.php'
faker.uri_page()
'about'
faker.uri_path(deep=None)
'app'
faker.url(schemes=None)
'http://mingli.cn/'
faker.user_name(*args, **kwargs)
'jie54'
'烫工'
'包括的是报告那些一点.图片地址基本全部.'
faker.paragraphs(nb=3, ext_word_list=None)
[ '计划规定这样所以组织商品其中.参加成为不同发表地区.精华科技谢谢大家需要.一下手机上海中文工程.',
'非常相关是一就是一个一种文章发生.增加那些以及之后以下你的.',
'学生应该出来分析增加关系组织.评论来源朋友注册应该需要单位.感觉最后无法发现选择人民.']
faker.sentence(nb_words=6, variable_nb_words=True, ext_word_list=None)
'介绍结果自己解决处理.'
faker.sentences(nb=3, ext_word_list=None)
['查看其实一次学习登录浏览是一他们.', '而且资源的人事情.', '科技价格免费大学教育.']
faker.text(max_nb_chars=200, ext_word_list=None)
('只是当前国内中文所以.威望系统在线虽然.\n'
'图片人民非常合作这种谢谢更新.名称详细直接社会一直首页完全.\n'
'重要更多只要市场.必须只是学生音乐.系统美国类别这些一切环境.\n'
'但是的话人民美国关于.\n'
'情况专业国际看到研究.音乐环境市场搜索发现.\n'
'工具还是到了今天位置人民.留言作者品牌工程项目必须.上海精华现在我们新闻应该关系.\n'
'更新经济能力全部资源如果.手机能够登录国内.')
faker.texts(nb_texts=3, max_nb_chars=200, ext_word_list=None)
[ '成功可能推荐你的行业.地区而且推荐.\n'
'网络不断是一主要必须.开始安全服务.\n'
'应该网上通过以后通过大学.管理要求有关国际阅读当前.为了应该结果点击公司开始怎么.\n'
'成功一次最大生产网站.这种加入她的地址有限.\n'
'根据新闻汽车起来非常主题显示必须.有些建设来自作者电话支持.\n'
'只是资源还是由于经济事情喜欢.为什中文大小得到服务.网络密码是否免费参加一次社区欢迎.',
'部门活动技术.商品影响发生行业密码完成.就是部门结果资料学习当然.或者帮助城市要求首页市场教育你们.\n'
'专业完全分析处理城市大学什么.\n'
'文件非常国际全部起来积分公司.资料的是电影没有.这是本站需要.\n'
'合作重要没有现在市场开发空间.您的会员推荐成功教育进行中国.\n'
'文件不是如果评论.因为经验设备规定.\n'
'加入一起影响网上大家运行在线如果.工程企业这种以后.',
'空间市场出现必须基本电话.显示一个标准其他设计作品.工程不断新闻问题更多更新这么.\n'
'一起简介网上内容不会.任何知道各种两个.类别事情经营那么投资市场.\n'
'那些使用介绍公司朋友人民你们浏览.应该表示一点一般说明主要谢谢.电话回复起来经验一个来源加入.\n'
'地区法律其他表示虽然.参加社会喜欢有限论坛一般发布.类别目前文化可以.\n'
'报告质量工作主要.企业发布完全.得到名称作者等级两个论坛只要电话.']
faker.word(ext_word_list=None)
'注意'
faker.words(nb=3, ext_word_list=None, unique=False)
['责任', '组织', '以后']
在这里每个方法的参数是不同的,具体的参数解释可以见源代码每个方法的注释:https://github.com/joke2k/faker/blob/master/faker/providers/lorem/__init__.py,
faker.md5(raw_output=False)
faker.null_boolean()
faker.password(length=10, special_chars=True, digits=True, upper_case=True, lower_case=True)
faker.sha1(raw_output=False)
faker.sha256(raw_output=False)
faker.uuid4(cast_to=<class 'str'>)
'颖'
faker.first_name_female()
'芳'
faker.first_name_male()
'利'
faker.first_romanized_name()
'Jing'
faker.last_name()
'温'
faker.last_name_female()
'寇'
faker.last_name_male()
'陈'
faker.last_romanized_name()
'Lei'
faker.name()
'黄明'
faker.name_female()
'张凯'
faker.name_male()
'黄鹏'
('Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/5332 (KHTML, like Gecko) '
'Chrome/40.0.837.0 Safari/5332')
faker.firefox()
('Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_8_9; rv:1.9.4.20) '
'Gecko/2019-05-02 05:58:44 Firefox/3.6.19')
faker.internet_explorer()
'Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 5.2; Trident/3.0)'
faker.linux_platform_token()
'X11; Linux i686'
faker.linux_processor()
'x86_64'
faker.mac_platform_token()
'Macintosh; U; PPC Mac OS X 10_12_5'
faker.mac_processor()
'U; Intel'
faker.opera()
'Opera/9.77.(Windows NT 4.0; vi-VN) Presto/2.9.182 Version/11.00'
faker.safari()
('Mozilla/5.0 (Macintosh; PPC Mac OS X 10_7_1 rv:5.0; or-IN) '
'AppleWebKit/535.9.4 (KHTML, like Gecko) Version/5.0.2 Safari/535.9.4')
faker.user_agent()
'Opera/8.69.(X11; Linux i686; ml-IN) Presto/2.9.170 Version/11.00'
faker.windows_platform_token()
'Windows NT 6.1'
from faker.providers import internet
faker = Faker()
faker.add_provider(internet)
print(faker.ipv4_private())
◆
精彩推荐
◆
「2019 AI开发者大会」 除了邀请国内外一线公司重磅嘉宾外,还邀请到了亚马逊首席科学家@李沐,他将于9月5日亲授「深度学习实训营」,通过动手实操,帮助开发者全面了解深度学习的基础知识和开发技巧。
目前「培训+会议」优惠票倒计时最后 1 天,扫描海报二维码购票,即享折扣。更多详情请见: https://t.csdnimg.cn/aoY4